Disc drives are digital data storage devices which enable users of computer systems to store and retrieve large amounts of data in a fast and efficient manner. Disc drives of the present generation have data storage capacities in excess of several gigabytes (GB) and can transfer data at sustained rates of several megabytes (MB) per second.
A typical disc drive is provided with a plurality of magnetic recording discs which are mounted to a rotatable hub of a spindle motor for rotation at a constant, high speed. An array of read/write heads are disposed adjacent surfaces of the discs to transfer data between the discs and a host computer. The heads are radially positioned over the discs by a rotary actuator and a closed loop, digital servo system, and are caused to fly proximate the surfaces of the discs upon air bearings established by air currents set up by the high speed rotation of the discs.
A plurality of nominally concentric tracks are defined on each disc surface, with disc drives of the present generation having track densities in excess of 4,000 tracks per centimeter (10,000 tracks per inch). A preamp and driver circuit generates write currents that are used by the head to selectively magnetize the tracks during a data write operation and amplifies read signals detected by the head during a data read operation. A read/write channel and interface circuit are operably connected to the preamp and driver circuit to transfer the data between the discs and the host computer.
Disc drives are typically used in a stand-alone fashion, such as in a typical personal computer (PC) configuration where a single disc drive is utilized as the primary data storage peripheral. However, in applications requiring vast amounts of data storage capacity or high input/output (I/O) bandwidth, a plurality of drives can be arranged into a multi-drive array, sometimes referred to as a RAID ("Redundant Array of Inexpensive Discs"; also "Redundant Array of Independent Discs").
The primary impetus behind the development of such multi-drive arrays is the disparity between central processing unit (CPU) speeds (which continue to increase at a phenomenal rate bounded primarily by electronic constraints), and disc drive I/O speeds (which are bounded largely by mechanical constraints). As will be recognized, an array of smaller, inexpensive drives functioning as a single storage device will usually provide improved operational performance over a single, expensive drive. A seminal article proposing various RAID architectures was published in 1987 by Patterson et al., entitled "A Case for Redundant Arrays of Inexpensive Discs (RAID)", Report No. UCB/CSD 87/391, December 1987, Computer Science Division (EECS), University of California, Berkeley, Calif.
RAID architectures are presently identified by numerical levels of organization, with each level providing different data integrity and I/O throughput characteristics. The particular level (or levels) used in a given application largely depend upon the requirements of the application. Although commonly utilized RAID levels range from RAID 0 to RAID 7, as well as combinations thereof, to facilitate the present discussion the more popular RAID levels will be briefly discussed as follows.
RAID 0 is an architecture wherein data are divided among a plurality of drives operably connected to a single controller by way of a common I/O bus, such as SCSI (Small Computer Synchronous Interface), SCSI-2, SCSI-3, or Fibre Channel. For example, in a two-drive RAID 0, half of the data are stored on one drive and the other half are stored on the remaining drive. This is usually accomplished on a data block (sector) basis, so that each drive receives every other block of data. Data transfer performance during a read operation is thus essentially doubled over that of a single drive. Data integrity levels, however, remain essentially the same as those offered by each drive individually, in that error correction codes (ECC) are utilized for the data stored by each drive, but no inter-drive error detection and correction takes place. The storing of data across multiple drives is often referred to as "striping."
RAID 1 entails the operation of multiple (usually two) drives in parallel so that the same data are simultaneously written to all of the drives. This technique is often referred to as "mirroring." RAID 1 is commonly employed in applications where increased reliability is desired (such as a local area network, or LAN). Read performance is typically improved slightly over that of a single drive, in that data are usually recovered from the drive having the head that is closer to the location on the disc where the data are stored (some controllers can provide parallel access, significantly improving recovery time). Write performance is typically degraded slightly, however, as each write operation requires the simultaneous writing of one or more duplicate set(s) of data. Finally, the cost of data storage (per MB) is increased by a factor equal to the number of drives (e.g., in a two-drive RAID 1, the cost per MB is doubled as compared to a single drive).
RAID 3 is a multi-drive architecture in which parity (error correction) is introduced across the drives. That is, the data are interleaved at a bit level across several drives, and one drive is designated as a parity drive on which parity information is stored. Hence, the system is fault-tolerant in that all of the data can be reconstructed in the event of a loss of a single drive from the array. Because all of the drives are accessed during a given I/O operation, the slowest drive largely determines the transfer rate performance of the system as a whole. RAID 3 also facilitates "hot-swapping", allowing individual drives to be removed from the system during operation (such as in the event of a failed drive).
RAID 5 also uses parity across the drives, but implements such on a data block (sector) basis. This eliminates the need for a designated parity drive (as with RAID 3) and the associated data transfer "bottle-necks" that can arise therefrom, as updating a parity drive can take a significant amount of time. RAID 5 does require additional levels of overhead to track the location of the parity addresses. Improvements in I/O performance can be obtained when transfers are relatively small and random, but this performance degrades with larger, sustained transfers. It will be noted that RAID 1 through 5 were originally proposed in the aforementioned Patterson et al. article.
RAID 7 is one of the more recently proposed levels in the RAID taxonomy, allowing each individual drive to access data as quickly as possible through the use of a central cache (in the controller) and a process-oriented operating system embedded in the array. This embedded operating system allows each drive to move its heads independently of the other drives, unlike previous RAID levels wherein the heads are moved synchronously. Also, RAID 7 allows the use of different types of drives in the array, unlike previous RAID levels. Finally, dynamic mapping is employed so that updated data do not have to be written in the same physical location as the original data, which can enhance transfer performance of the array.
Besides these various RAID architectures, combinations thereof are also commonly utilized, such as RAID 0+1 ("zero plus one"), which uses both RAID 0 (data splitting) and RAID 1 (drive mirroring). Thus, a RAID 0+1 requires at least four drives to implement.
As provided above, a RAID is typically utilized to enhance the reliability of a data storage system and/or to improve the data transfer characteristics of the system. To attain high, sustained data transfer rates, a RAID 0 is one of the more suitable choices, in that the transfer of data is performed in parallel among the various drives composing the array. It will be noted that a RAID 0+1 also provides a high data transfer rate, as well as increased reliability due to mirroring (but requires twice as many drives as a RAID 0). Examples of systems that typically require high, sustained data transfer rates include real-time audio-video (AV) and satellite data communications applications.
To increase data recording densities, disc drives typically employ zone based recording (ZBR) such as disclosed in U.S. Pat. No. 4,799,112 issued Jan. 17, 1989 to Bremmer et al., assigned to the assignee of the present invention. As will be recognized by those skilled in the art, ZBR generally entails defining a plurality of essentially constant bit-density zones across the radii of the discs, so that all of the tracks in each zone have the same number of data blocks (sectors) in which user data are stored. Thus, the number of data blocks per track will increase in a step-wise fashion from the inner diameter (ID) to the outer diameter (OD) of the discs.
The use of ZBR results in a disc drive transfer rate that varies with radius, with the transfer rate about doubling for tracks at the OD as compared to tracks at the ID. Hence, to maintain an acceptably high sustained data transfer rate, it is sometimes necessary to only utilize tracks beyond a certain radius on the discs, as tracks within this radius (toward the ID) will not reliably support the required transfer rate. In such a case, less than all of the available data capacities of the drives can be utilized, limiting the capabilities of the RAID.
Accordingly, there is a continual need in the art for improvements whereby the sustained data transfer rate of a RAID can be enhanced.